A window is an object which contains or presents information and which can be displayed upon a screen of a display device. A window may be visible or partially or totally obscured by one or more other windows. A window typically has two portions: a content region and a structure region. The content region is where information from an application program or a user is contained or presented. The structure region is the border region or frame of the window which may contain controls, i.e. buttons, scroll bars, or other mechanisms for issuing commands or for manipulating the window. Background information on windows can be found in "Apple Human Interface Guidelines",
Windows can be opened or closed. In an environment which supports windows, a window is usually opened when a file is opened or created and the contents of the file are displayed in the content region of that window. In addition, a window is usually opened to display a message to a user when an action or process is being performed by the computer system. For example, a window can be used to display a status, error or other message indicating rite progress of the action or process. The window can also be used to display a request for input from the user in order to continue the action or process. When a window is closed, the associated file, if any, is also closed.
Typically, computer systems support multiple windows being open simultaneously. In multi-tasking or parallel-processing computer systems, typically windows are active as long as they are open, even if they are partially or totally obscured from view by other windows. In other systems, although multiple windows can be open, only one window can be active at any point in time. Usually, the active window is placed in the forefront so that it is not obscured by other windows. The active window is typically further differentiated from other windows by indicating its active status in the structure region.
When a window is opened, its positioning on a display screen is determined. The positioning of the window can be important to a user since multiple windows can be displayed at the same time and there is a finite amount of space on a display screen in which to display the windows.
In some cases, a user may have a preference as to where a particular window or type of window is positioned. For example, a user may prefer a particular position on the screen for status windows, while it may prefer a different specific position for a particular application program. Although prior window management systems permit a user or application to specify location information for windows associated with objects or processes, also called actions, operations or tasks, they do not permit a single process to simultaneously display multiple windows. In a system which permits multiple tasks to concurrently execute, if there are multiple tasks displaying windows simultaneously then the windows are displayed at random locations on the screen. By random, it is meant that the location of each of those windows is not based on any prior user preferences. This situation may occur, for example, when multiple operations such as searches for files on a system or copy operations are concurrently being performed. Each search or copy operation may have a separate window for displaying the status and/or results of that search or copy.
An example of such a system is the FINDER which is part of the Macintosh.RTM. computer's system software, commercially available from Apple Computer, Cupertino, Calif. For information on the FINDER see "Macintosh User's Guide for desktop Macintosh computers", particularly chapters 2, 4, 5, 6, 10 and 12, Apple Computer, Inc. 1992, the disclosure of which is herein incorporated by reference.
The FINDER is an application that manages a user's desktop interface. It is the program that creates the Macintosh desktop and keeps track of files. It displays icons representing an application and the documents created by an application and it tracks user activity on the desktop. When appropriate, the FINDER starts up an application and indicates which documents to open or print. The preferences folder is under the system folder and holds preferences files to record local configuration settings.
In the FINDER, versions 7.0 and 7.1, window positioning information is associated with objects such as folders. For descriptive purposes, "FINDER" refers to both versions 7.0 and 7.1. When an object is opened, the window in which the data for that object is displayed is positioned at the location on the screen associated with that object. Initially, this window positioning information is set to a default location on the screen such as the upper left of the screen. If a window already exists in the location specified for that object then the object's window is positioned slightly below and to the fight of the existing window. When an object's window is closed, the current position of the window is stored as the window positioning information associated with the object. Thus, if a window is moved between the time it is opened and closed, the new location is stored with the associated object and when the object is subsequently opened again, the window appears in the new location. Thus, a user's preference for window positioning as indicated by the location to which the window was moved, is stored and used later if the object is opened again.
In the FINDER, window positioning information is also associated with a process or operation. For example, when a user selects a DUPLICATE operation from the FILE menu, a status window is displayed detailing the progress of the DUPLICATE operation. The location of this window is derived from window positioning information associated with the DUPLICATE operation. This information is stored in the FINDER preferences file. This file contains window positioning information on an individual process basis for virtually all processes or operations provided to a user by the menu bar of the FINDER. Since the FINDER executes one process at a time and permits a single window per process, the FINDER can store in the preferences file only one location for each type of process.
If the window is moved while the process is running, then the new location is stored in the window positioning information associated with that process and the next time the process is invoked, the window will appear in the new location.
The FINDER is not designed for an environment in which a user perceives that multiple operations are executing simultaneously. The present invention is directed toward such an environment, providing several advantages.